perm filename PRD.LAP[BNF,JRA] blob sn#001926 filedate 1972-10-06 generic text, type T, neo UTF8
(SETQ IBASE (ADD1 7)) 
(DEFPROP PRDFNS (NIL !STKLOC !TSTLST !ASSLST !X !NR !WORRYFLG !BNF !RULE PRDEXP OUTBLDINIT RTLSTSIZE PRODUCE UNP~
RODUCE BROKET SQBROK PRD PBLD0 PBLD1 STKIFY PBLD21 GETATOM ASSOCL SUBSTL MKLIST OUTORDER ORDTST2 WORRY TTYPRINT ~
TTYPRIN1 MKRITE TST VARIABLE SPCS CONSTLST TST2 TST3 OTA OT1 OT2 MKMATCH MAGPRE STKLST MKBLD2 MKBLD OUTMAK1 MKTS~
T2 MKTST MAKOUTRULE OUTMAKE MKOP) VALUE) 
(DEFPROP !WORRYFLG (NIL) VALUE) 
(DEFPROP PRDEXP (NIL OUTORDER ORDTST2 WORRY OTA OT1 OT2) VALUE) 
(LAP OUTBLDINIT SUBR) 
	(MOVEI 1 (QUOTE (ORDNAM T RTLSTSIZE)))(CALL 17 (E ARRAY))(MOVEI 1 (QUOTE (ORDNUM T RTLSTSIZE)))
	(CALL 17 (E ARRAY))(MOVEI 1 (QUOTE (ORDLST T RTLSTSIZE)))(CALL 17 (E ARRAY))(MOVEI 1 (QUOTE NIL))
	(POPJ P)
NIL 


(DEFPROP RTLSTSIZE (NIL . 40) VALUE) 
(LAP PRODUCE#1 SUBR) 
	(PUSH P 1)(HLRZ@ 1 1)(CALL 1 (E BROKET))(MOVEI 3 (QUOTE BNF))(HRRZ@ 2 0 P)(HLRZ@ 2 2)
	(PUSH P 1)(HLRZ@ 1 -1 P)(CALL 3 (E PUTPROP))(HLRZ@ 1 -1 P)(CALL 1 (E PRD))(MOVE 1 0 P)
	(SUB P (C 0 0 2 2))(POPJ P)
NIL 


(LAP PRODUCE#2 SUBR) 
	(PUSH P 1)(HLRZ@ 1 1)(CALL 1 (E SQBROK))(MOVE 2 1)(EXCH 1 0 P)(CALL 2 (E MAKOUTRULE))
	(MOVE 1 0 P)(SUB P (C 0 0 1 1))(POPJ P)
NIL 


(LAP PRODUCE SUBR) 
	(MOVE 2 1)(PUSH P 1)(MOVEI 1 (QUOTE PRODUCE#1))(CALL 2 (E MAPCAR))(MOVEM 1 (SPECIAL <LANG>))
	(POP P 2)(MOVEI 1 (QUOTE PRODUCE#2))(CALL 2 (E MAPCAR))(MOVEM 1 (SPECIAL >LANG<))
	(MOVEI 1 (QUOTE NIL))(POPJ P)
NIL 


(LAP UNPRODUCE#1 SUBR) 
	(MOVEI 2 (QUOTE BNF))(PUSH P 1)(CALL 2 (E GET))(CALL 1 (E NCONS))(POP P 2)(JCALL 2 (E XCONS))
NIL 


(LAP UNPRODUCE SUBR) 
	(MOVE 2 1)(MOVEI 1 (QUOTE UNPRODUCE#1))(JCALL 2 (E MAPCAR))
NIL 


(LAP BROKET SUBR) 
	(CALL 1 (E EXPLODE))(PUSH P 1)(CALL 1 (E LAST))(MOVEI 2 (QUOTE (>)))(HRRM@ 2 1)(MOVE 2 0 P)
	(MOVEI 1 (QUOTE <))(CALL 2 (E CONS))(SUB P (C 0 0 1 1))(JCALL 1 (E READLIST))
NIL 


(LAP SQBROK SUBR) 
	(CALL 1 (E EXPLODE))(PUSH P 1)(CALL 1 (E LAST))(MOVEI 2 (QUOTE (<)))(HRRM@ 2 1)(MOVE 2 0 P)
	(MOVEI 1 (QUOTE >))(CALL 2 (E CONS))(SUB P (C 0 0 1 1))(JCALL 1 (E READLIST))
NIL 


(LAP PRD SUBR) 
	(MOVEI 2 (QUOTE BNF))(PUSH P 1)(CALL 2 (E GET))(CALL 1 (E REVERSE))(PUSH P 1)(PUSH P (C 0 0 (QUOTE NIL))~
)(PUSH P (C 0 0 (QUOTE NIL)))(PUSH P (C 0 0 (QUOTE NIL)))
G0001 (MOVE 1 -3 P)(JUMPN 1 G0011)(MOVE 1 -4 P)(CALL 1 (E BROKET))(MOVE 3 -1 P)(MOVE 2 0 P)
	(PUSH P 1)(MOVE 1 -5 P)(CALL 3 (E PBLD0))(CALL 1 (E NCONS))(MOVEI 2 (QUOTE NIL))(CALL 2 (E XCONS))
	(MOVEI 2 (QUOTE LAMBDA))(CALL 2 (E XCONS))(MOVEI 3 (QUOTE EXPR))(MOVE 2 1)(POP P 1)
	(CALL 3 (E PUTPROP))(MOVE 1 -4 P)(JRST 0 G0005)
G0011 (HLRZ@ 1 -3 P)(HLRZ@ 1 1)(MOVEM 1 -2 P)
G0002 (MOVE 1 -2 P)(JUMPE 1 G0003)(HLRZ@ 1 1)(CAME 1 -4 P)(JRST 0 G0022)(MOVE 2 -1 P)(HLRZ@ 1 -3 P)
	(CALL 2 (E CONS))(MOVEM 1 -1 P)(JRST 0 G0004)
G0022 (HLRZ@ 1 1)(CAIE 1 (QUOTE FORMAT))(JRST 0 G0027)(HRRZ@ 1 -2 P)(JRST 0 (G0002 -1))
G0027 
G0003 (MOVE 2 0 P)(HLRZ@ 1 -3 P)(CALL 2 (E CONS))(MOVEM 1 0 P)
G0004 (HRRZ@ 1 -3 P)(MOVEM 1 -3 P)(JRST 0 G0001)
G0005 (SUB P (C 0 0 5 5))(POPJ P)
NIL 


(LAP PBLD0 SUBR) 
	(PUSH P 1)(PUSH P 2)(PUSH P 3)(JUMPN 3 G0002)(CALL 1 (E NCONS))(MOVEI 2 (QUOTE QUOTE))
	(CALL 2 (E XCONS))(MOVE 2 -1 P)(PUSH P 1)(MOVEI 1 (QUOTE T))(CALL 2 (E PBLD1))(CALL 1 (E NCONS))
	(MOVEI 2 (QUOTE NIL))(CALL 2 (E XCONS))(MOVEI 2 (QUOTE LAMBDA))(CALL 2 (E XCONS))
	(CALL 1 (E NCONS))(MOVEI 2 (QUOTE FUNCTION))(CALL 2 (E XCONS))(CALL 1 (E NCONS))(POP P 2)
	(CALL 2 (E XCONS))(MOVEI 2 (QUOTE NLRR))(CALL 2 (E XCONS))(JRST 0 G0001)
G0002 (MOVE 1 -2 P)(CALL 1 (E NCONS))(MOVEI 2 (QUOTE QUOTE))(CALL 2 (E XCONS))(MOVE 2 -1 P)
	(PUSH P 1)(MOVEI 1 (QUOTE T))(CALL 2 (E PBLD1))(CALL 1 (E NCONS))(MOVEI 2 (QUOTE NIL))
	(CALL 2 (E XCONS))(MOVEI 2 (QUOTE LAMBDA))(CALL 2 (E XCONS))(CALL 1 (E NCONS))(MOVEI 2 (QUOTE FUNCTION))
	(CALL 2 (E XCONS))(MOVE 2 -1 P)(PUSH P 1)(MOVEI 1 (QUOTE NIL))(CALL 2 (E PBLD1))(CALL 1 (E NCONS))
	(MOVEI 2 (QUOTE (<*>)))(CALL 2 (E XCONS))(MOVEI 2 (QUOTE LAMBDA))(CALL 2 (E XCONS))
	(CALL 1 (E NCONS))(MOVEI 2 (QUOTE FUNCTION))(CALL 2 (E XCONS))(CALL 1 (E NCONS))(POP P 2)
	(CALL 2 (E XCONS))(POP P 2)(CALL 2 (E XCONS))(MOVEI 2 (QUOTE LRR))(CALL 2 (E XCONS))
G0014 
G0001 (SUB P (C 0 0 3 3))(POPJ P)
NIL 


(LAP PBLD1#1 SUBR) 
	(PUSH P 1)(MOVE 1 (SPECIAL !NR))(JUMPE 1 G0001)(TDZA 1 1)
G0001 (MOVEI 1 T)(PUSH P 1)(HLRZ@ 1 -1 P)(MOVE 2 1)(PUSH P 1)(HRRZ@ 1 -2 P)(HLRZ@ 1 1)(CALL 2 (E STKIFY))
	(MOVE 3 1)(POP P 2)(POP P 1)(SUB P (C 0 0 1 1))(JCALL 3 (E PBLD21))
NIL 


(LAP PBLD1 SUBR) 
	(JSP 6 SPECBIND)(0 1 (SPECIAL !NR))(MOVEI 1 (QUOTE PBLD1#1))(CALL 2 (E MAPCAR))(MOVEI 2 (QUOTE ((*NIL*))~
))(CALL 2 (E *APPEND))(MOVEI 2 (QUOTE COND))(CALL 2 (E XCONS))(JRST 0 SPECSTR)
NIL 


(LAP STKIFY SUBR) 
	(PUSH P 1)(PUSH P 2)(JUMPE 1 G0001)(CAIE 1 (QUOTE *))(JRST 0 G0002)(EXCH 1 2)(CALL 1 (E GETATOM))
	(CALL 1 (E NCONS))(MOVEI 2 (QUOTE STK))(CALL 2 (E XCONS))(JRST 0 G0001)
G0002 (CALL 2 (E MEMBER))(JUMPE 1 G0006)(MOVE 1 -1 P)(CALL 1 (E NCONS))(MOVEI 2 (QUOTE STK))
	(CALL 2 (E XCONS))(JRST 0 G0001)
G0006 (MOVE 1 -1 P)(CALL 1 (E ATOM))(JUMPE 1 G0010)(MOVE 1 -1 P)(CALL 1 (E NCONS))(MOVEI 2 (QUOTE QUOTE))
	(CALL 2 (E XCONS))(JRST 0 G0001)
G0010 (MOVE 2 0 P)(HLRZ@ 1 -1 P)(CALL 2 (E STKIFY))(MOVE 2 0 P)(PUSH P 1)(HRRZ@ 1 -2 P)(CALL 2 (E STKIFY))
	(CALL 1 (E NCONS))(POP P 2)(CALL 2 (E XCONS))(MOVEI 2 (QUOTE CONS))(CALL 2 (E XCONS))
G0014 
G0001 (SUB P (C 0 0 2 2))(POPJ P)
NIL 


(LAP PBLD21 SUBR) 
	(PUSH P (C 0 0 (QUOTE -1)))(PUSH P 1)(MOVE 1 2)(PUSH P 2)(PUSH P 3)(CALL 1 (E REVERSE))
	(MOVEM 1 -1 P)(PUSH P (C 0 0 (QUOTE NIL)))
G0001 (MOVE 1 -2 P)(JUMPE 1 G0002)(CALL 1 (E CAAR))(CAIE 1 (QUOTE FORMAT))(TDZA 1 1)(MOVEI 1 T)
	(JUMPN 1 G0007)(MOVE 1 -4 P)(CALL 1 (E ADD1))(MOVEM 1 -4 P)(HLRZ@ 1 -2 P)(CALL 1 (E ATOM))
	(JUMPE 1 G0014)(HLRZ@ 1 -2 P)(CALL 1 (E BROKET))(CALL 1 (E NCONS))(JRST 0 G0013)
G0014 (HLRZ@ 1 -2 P)
G0020 
G0013 (MOVE 2 0 P)(CALL 2 (E CONS))(MOVEM 1 0 P)(HLRZ@ 1 -2 P)(CALL 1 (E ATOM))(JUMPE 1 G0026)
	(MOVE 3 -1 P)(HLRZ@ 2 -2 P)(MOVE 1 -4 P)(CALL 3 (E SUBST))(MOVEM 1 -1 P)
G0026 
G0010 
G0007 (HRRZ@ 1 -2 P)(MOVEM 1 -2 P)(JRST 0 G0001)
G0002 (MOVE 1 -3 P)(JUMPE 1 G0036)(MOVE 1 -4 P)(CALL 1 (E NCONS))(MOVEI 2 (QUOTE STK))(CALL 2 (E XCONS))
	(MOVE 3 -1 P)(MOVE 2 1)(MOVEI 1 (QUOTE <*>))(CALL 3 (E SUBST))(MOVEM 1 -1 P)(HRRZ@ 1 0 P)
	(MOVEM 1 0 P)
G0036 (MOVE 2 0 P)(MOVEI 1 (QUOTE AND))(CALL 2 (E CONS))(PUSH P 1)(MOVE 1 -2 P)(CALL 1 (E NCONS))
	(POP P 2)(SUB P (C 0 0 5 5))(JCALL 2 (E XCONS))
NIL 


(LAP GETATOM SUBR) 
	(PUSH P 1)(HLRZ@ 1 1)(CALL 1 (E ATOM))(JUMPE 1 G0002)(HLRZ@ 1 0 P)(JRST 0 G0001)
G0002 (HRRZ@ 1 0 P)(CALL 1 (E GETATOM))
G0006 
G0001 (SUB P (C 0 0 1 1))(POPJ P)
NIL 


(LAP ASSOCL SUBR) 
	(PUSH P 1)(PUSH P 2)(EXCH 1 2)(JUMPE 1 G0001)(HLRZ@ 2 1)(HLRZ@ 2 2)(MOVE 1 -1 P)(CALL 2 (E EQUAL))
	(JUMPE 1 G0002)(HLRZ@ 1 0 P)(JRST 0 G0001)
G0002 (HRRZ@ 2 0 P)(MOVE 1 -1 P)(CALL 2 (E ASSOCL))
G0006 
G0001 (SUB P (C 0 0 2 2))(POPJ P)
NIL 


(LAP SUBSTL SUBR) 
	(PUSH P 1)(PUSH P 2)(JUMPN 1 G0002)(EXCH 1 2)(JRST 0 G0001)
G0002 (HRRZ@ 1 -1 P)(MOVE 3 0 P)(HLRZ@ 2 -1 P)(HRRZ@ 2 2)(HLRZ@ 2 2)(PUSH P 1)(HLRZ@ 1 -2 P)
	(HLRZ@ 1 1)(CALL 3 (E SUBST))(MOVE 2 1)(POP P 1)(CALL 2 (E SUBSTL))
G0003 
G0001 (SUB P (C 0 0 2 2))(POPJ P)
NIL 


(LAP MKLIST SUBR) 
	(PUSH P 1)(HRRZ@ 2 1)(JUMPN 2 G0002)(HLRZ@ 1 1)(JRST 0 G0001)
G0002 (MOVE 2 0 P)(MOVEI 1 (QUOTE LIST))(CALL 2 (E CONS))
G0005 
G0001 (SUB P (C 0 0 1 1))(POPJ P)
NIL 


(LAP OUTORDER SUBR) 
	(JSP 6 SPECBIND)(0 0 (SPECIAL !WORRYFLG))(PUSH P (C 0 0 (QUOTE 0)))(PUSH P 1)(PUSH P (C 0 0 (QUOTE NIL))~
)(PUSH P (C 0 0 (QUOTE NIL)))(PUSH P 1)(PUSH P (C 0 0 (QUOTE NIL)))
G0001 (MOVE 1 -1 P)(JUMPE 1 G0027)(HLRZ@ 1 -1 P)(MOVEM 1 0 P)(MOVE 1 -5 P)(CALL 1 (E ADD1))
	(MOVEM 1 -5 P)(CALL 1 (E ORDNAM))(MOVE 1 0 P)(PUSHJ P NSTR)(MOVEI 1 (QUOTE NIL))(HRRZ@ 1 -1 P)
	(MOVEM 1 -1 P)(JRST 0 G0001)
G0027 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 2 2))(MOVE 2 -3 P)(MOVEM 2 0 P)
G0002 (CLEARM 1 (SPECIAL !WORRYFLG))(PUSH P (C 0 0 (QUOTE 1)))
G0004 (MOVE 2 -1 P)(MOVE 1 0 P)(CALL 2 (E *GREAT))(JUMPN 1 G0043)(MOVE 1 0 P)(CALL 1 (E ORDNAM))
	(JUMPE 1 G0049)(MOVEI 1 (QUOTE NIL))(CALL 1 (E NCONS))(PUSH P 1)(PUSH P (C 0 0 (QUOTE 1)))
	(PUSH P 1)
G0006 (MOVE 2 -4 P)(MOVE 1 -1 P)(CALL 2 (E *GREAT))(JUMPE 1 G0056)(HRRZ@ 1 -2 P)(JRST 0 G0051)
G0056 (MOVE 1 -3 P)(CAMN 1 -1 P)(JRST 0 G0062)(MOVE 1 -1 P)(CALL 1 (E ORDNAM))(JUMPE 1 G0062)
	(MOVE 1 -3 P)(CALL 1 (E ORDNAM))(CALL 1 (E MKRITE))(PUSH P 1)(MOVE 1 -2 P)(CALL 1 (E ORDNAM))
	(CALL 1 (E MKRITE))(MOVEI 3 (QUOTE NIL))(MOVE 2 1)(POP P 1)(CALL 3 (E SPCS))(JUMPE 1 G0062)
	(MOVE 1 -1 P)(CALL 1 (E NCONS))(HRRM@ 1 0 P)(HRRZ@ 1 0 P)(MOVEM 1 0 P)
G0062 (MOVEI 2 (QUOTE 1))(MOVE 1 -1 P)(CALL 2 (E *PLUS))(MOVEM 1 -1 P)(JRST 0 G0006)
G0051 (MOVEM 1 0 P)(MOVE 1 -3 P)(CALL 1 (E ORDLST))(POP P 1)(PUSHJ P NSTR)(SUB P (C 0 0 2 2))
G0049 (MOVEI 2 (QUOTE 1))(MOVE 1 0 P)(CALL 2 (E *PLUS))(MOVEM 1 0 P)(JRST 0 G0004)
G0043 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 1 1))(PUSH P (C 0 0 (QUOTE 1)))
G0008 (MOVE 2 -1 P)(MOVE 1 0 P)(CALL 2 (E *GREAT))(JUMPN 1 G0083)(MOVE 1 0 P)(CALL 1 (E ORDNUM))
	(MOVEI 1 (QUOTE 0))(PUSHJ P NSTR)(MOVEI 2 (QUOTE 1))(MOVE 1 0 P)(CALL 2 (E *PLUS))
	(MOVEM 1 0 P)(JRST 0 G0008)
G0083 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 1 1))(PUSH P (C 0 0 (QUOTE 1)))
G0010 (MOVE 2 -1 P)(MOVE 1 0 P)(CALL 2 (E *GREAT))(JUMPN 1 G0094)(MOVE 1 0 P)(CALL 1 (E ORDLST))
	(PUSH P 1)(PUSH P (C 0 0 (QUOTE NIL)))
G0013 (MOVE 1 -1 P)(JUMPE 1 G0100)(HLRZ@ 1 -1 P)(MOVEM 1 0 P)(CALL 1 (E ORDNUM))(MOVEI 1 (QUOTE -1))
	(PUSHJ P NSTR)(HRRZ@ 1 -1 P)(MOVEM 1 -1 P)(JRST 0 G0013)
G0100 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 2 2))(MOVEI 2 (QUOTE 1))(MOVE 1 0 P)(CALL 2 (E *PLUS))
	(MOVEM 1 0 P)(JRST 0 G0010)
G0094 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 1 1))(PUSH P (C 0 0 (QUOTE 1)))
G0015 (MOVE 2 -1 P)(MOVE 1 0 P)(CALL 2 (E *GREAT))(JUMPN 1 G0115)(MOVE 1 0 P)(CALL 1 (E ORDNUM))
	(CALL 1 (E ZEROP))(JUMPE 1 G0121)(MOVE 1 0 P)(CALL 1 (E ORDLST))(PUSH P 1)(MOVE 1 -1 P)
	(CALL 1 (E NCONS))(MOVEI 3 (QUOTE 1))(MOVE 2 1)(POP P 1)(CALL 3 (E ORDTST2))
G0121 (MOVEI 2 (QUOTE 1))(MOVE 1 0 P)(CALL 2 (E *PLUS))(MOVEM 1 0 P)(JRST 0 G0015)
G0115 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 1 1))(MOVEI 1 (QUOTE NIL))(CALL 1 (E NCONS))(PUSH P 1)
	(PUSH P (C 0 0 (QUOTE 1)))(PUSH P 1)
G0019 (MOVE 2 -3 P)(MOVE 1 -1 P)(CALL 2 (E *GREAT))(JUMPE 1 G0136)(HRRZ@ 1 -2 P)(JRST 0 G0131)
G0136 (MOVE 1 -1 P)(CALL 1 (E ORDNUM))(MOVEI 2 (QUOTE -1))(CALL 2 (E EQUAL))(JUMPE 1 G0142)
	(MOVE 1 -1 P)(CALL 1 (E NCONS))(HRRM@ 1 0 P)(HRRZ@ 1 0 P)(MOVEM 1 0 P)
G0142 (MOVEI 2 (QUOTE 1))(MOVE 1 -1 P)(CALL 2 (E *PLUS))(MOVEM 1 -1 P)(JRST 0 G0019)
G0131 (CALL 1 (E WORRY))(SUB P (C 0 0 3 3))(MOVE 1 (SPECIAL !WORRYFLG))(JUMPN 1 G0002)(CLEARM 1 -1 P)
	(PUSH P 0 P)
G0020 (MOVEI 2 (QUOTE 0))(MOVE 1 0 P)(CALL 2 (E *LESS))(JUMPN 1 G0155)(PUSH P -1 P)
G0022 (MOVEI 2 (QUOTE 1))(MOVE 1 0 P)(CALL 2 (E *LESS))(JUMPN 1 G0161)(MOVE 1 0 P)(CALL 1 (E ORDNUM))
	(CAME 1 -1 P)(JRST 0 G0167)(MOVE 1 0 P)(CALL 1 (E ORDNAM))(JUMPE 1 G0167)(MOVE 1 0 P)
	(CALL 1 (E ORDNAM))(MOVE 2 -3 P)(CALL 2 (E CONS))(MOVEM 1 -3 P)
G0167 (MOVEI 2 (QUOTE -1))(MOVE 1 0 P)(CALL 2 (E *PLUS))(MOVEM 1 0 P)(JRST 0 G0022)
G0161 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 1 1))(MOVEI 2 (QUOTE -1))(MOVE 1 0 P)(CALL 2 (E *PLUS))
	(MOVEM 1 0 P)(JRST 0 G0020)
G0155 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 1 1))(MOVE 1 -1 P)(SUB P (C 0 0 4 4))(JRST 0 SPECSTR)
NIL 


(LAP ORDTST2 SUBR) 
	(PUSH P 1)(PUSH P 2)(PUSH P 3)(PUSH P (C 0 0 (QUOTE NIL)))
G0001 (MOVE 1 -3 P)(JUMPE 1 G0003)(HLRZ@ 1 -3 P)(MOVEM 1 0 P)(MOVE 2 -2 P)(CALL 2 (E MEMQ))
	(JUMPE 1 G0009)(MOVE 1 -2 P)(CALL 1 (E WORRY))(JRST 0 G0008)
G0009 (MOVE 1 0 P)(CALL 1 (E ORDNUM))(MOVE 2 -1 P)(CALL 2 (E *LESS))(JUMPE 1 G0012)(MOVE 1 0 P)
	(CALL 1 (E ORDNUM))(MOVE 1 -1 P)(PUSHJ P NSTR)
G0012 
G0008 (MOVE 1 0 P)(CALL 1 (E ORDLST))(MOVE 2 -2 P)(PUSH P 1)(MOVE 1 -1 P)(CALL 2 (E CONS))
	(PUSH P 1)(MOVE 1 -3 P)(CALL 1 (E ADD1))(MOVE 3 1)(POP P 2)(POP P 1)(CALL 3 (E ORDTST2))
	(HRRZ@ 1 -3 P)(MOVEM 1 -3 P)(JRST 0 G0001)
G0003 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 4 4))(POPJ P)
NIL 


(LAP WORRY SUBR) 
	(PUSH P 1)(JUMPE 1 G0006)(MOVEI 2 (QUOTE (HAS OUTPUT AMBIGUITY; YOUR CHOICES ARE:)))
	(MOVE 1 (SPECIAL !RULE))(CALL 2 (E CONS))(CALL 1 (E TTYPRINT))(PUSH P 0 P)(PUSH P (C 0 0 (QUOTE NIL)))
G0001 (MOVE 1 -1 P)(JUMPE 1 G0013)(HLRZ@ 1 -1 P)(MOVEM 1 0 P)(CALL 1 (E TTYPRINT))(MOVE 1 0 P)
	(CALL 1 (E ORDNAM))(HLRZ@ 1 1)(CALL 1 (E TTYPRIN1))(HRRZ@ 1 -1 P)(MOVEM 1 -1 P)(JRST 0 G0001)
G0013 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 2 2))(MOVEI 1 (QUOTE (TYPE LIST OF NUMBERS OF LINES TO DELETE)))
	(CALL 1 (E TTYPRINT))(CALL 0 (E READ))(PUSH P 1)(PUSH P (C 0 0 (QUOTE NIL)))
G0004 (MOVE 1 -1 P)(JUMPE 1 G0027)(HLRZ@ 1 -1 P)(MOVEM 1 0 P)(CALL 1 (E ORDNAM))(MOVEI 1 (QUOTE NIL))
	(PUSHJ P NSTR)(HRRZ@ 1 -1 P)(MOVEM 1 -1 P)(JRST 0 G0004)
G0027 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 2 2))(MOVEI 2 (QUOTE T))(MOVEM 2 (SPECIAL !WORRYFLG))
G0006 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 1 1))(POPJ P)
NIL 


(LAP TTYPRINT SUBR) 
	(MOVEI 2 (QUOTE NIL))(PUSH P 1)(MOVE 1 2)(CALL 2 (E OUTC))(EXCH 1 0 P)(CALL 1 (E PRINT))
	(MOVEI 2 (QUOTE NIL))(POP P 1)(CALL 2 (E OUTC))(MOVEI 1 (QUOTE NIL))(POPJ P)
NIL 


(LAP TTYPRIN1 SUBR) 
	(MOVEI 2 (QUOTE NIL))(PUSH P 1)(MOVE 1 2)(CALL 2 (E OUTC))(EXCH 1 0 P)(CALL 1 (E PRIN1))
	(MOVEI 2 (QUOTE NIL))(POP P 1)(CALL 2 (E OUTC))(MOVEI 1 (QUOTE NIL))(POPJ P)
NIL 


(LAP MKRITE SUBR) 
	(PUSH P 1)(CALL 1 (E CADR))(CAIE 1 (QUOTE *))(JRST 0 G0002)(HLRZ@ 1 0 P)(CALL 1 (E GETATOM))
	(JRST 0 G0001)
G0002 (HRRZ@ 1 0 P)(HLRZ@ 1 1)
G0006 
G0001 (SUB P (C 0 0 1 1))(POPJ P)
NIL 


(LAP TST SUBR) 
	(EXCH 1 2)(PUSH P 2)(CALL 1 (E NCONS))(MOVEM 1 (SPECIAL %SPDL))(MOVEI 1 (QUOTE 0))
	(CALLF@ 1 0 P)(SUB P (C 0 0 1 1))(POPJ P)
NIL 


(LAP VARIABLE SUBR) 
	(PUSH P 1)(CALL 1 (E NUMBERP))(JUMPE 1 G0002)(MOVEI 1 (QUOTE NIL))(JRST 0 G0001)
G0002 (MOVEI 2 (QUOTE BNF))(MOVE 1 0 P)(CALL 2 (E GET))(JUMPN 1 G0001)(MOVEI 2 (QUOTE (ID NUMBER ATOM CHAR)))
	(MOVE 1 0 P)(CALL 2 (E MEMQ))
G0001 (SUB P (C 0 0 1 1))(POPJ P)
NIL 


(LAP SPCS SUBR) 
	(PUSH P 1)(PUSH P 2)(PUSH P 3)(CAME 1 2)(TDZA 1 1)(MOVEI 1 T)(JUMPN 1 G0002)(MOVE 1 -2 P)
	(JUMPE 1 G0004)(TDZA 1 1)
G0004 (MOVEI 1 T)(JUMPN 1 G0002)(MOVEI 2 (QUOTE (ID NUMBER ATOM)))(MOVE 1 -1 P)(CALL 2 (E MEMQ))
	(JUMPE 1 G0007)(MOVE 1 -2 P)(CALL 1 (E VARIABLE))(JUMPE 1 G0006)
G0007 (TDZA 1 1)
G0006 (MOVEI 1 T)(JUMPN 1 G0002)(MOVE 1 -1 P)(CALL 1 (E ATOM))(JUMPE 1 G0011)(MOVE 1 -1 P)
	(CALL 1 (E VARIABLE))(JUMPE 1 G0011)(MOVE 2 0 P)(MOVE 1 -1 P)(CALL 2 (E MEMQ))(JUMPN 1 G0011)
	(MOVEI 2 (QUOTE BNF))(MOVE 1 -1 P)(CALL 2 (E GET))(PUSH P 1)
G0001 (MOVE 1 0 P)(JUMPE 1 G0017)(HLRZ@ 1 1)(CALL 1 (E MKRITE))(MOVE 2 -1 P)(PUSH P 1)(MOVE 1 -3 P)
	(CALL 2 (E CONS))(MOVE 3 1)(POP P 2)(MOVE 1 -3 P)(CALL 3 (E SPCS))(JUMPE 1 G0021)
	(MOVEI 1 (QUOTE T))(JRST 0 G0016)
G0021 (HRRZ@ 1 0 P)(MOVEM 1 0 P)(JRST 0 G0001)
G0027 
G0017 (MOVEI 1 (QUOTE NIL))
G0016 (SUB P (C 0 0 1 1))(JRST 0 G0002)
G0011 (MOVE 1 -1 P)(CALL 1 (E ATOM))(JUMPN 1 G0034)(MOVE 1 -2 P)(CALL 1 (E ATOM))(JUMPN 1 G0034)
	(MOVE 3 1)(HLRZ@ 2 -1 P)(HLRZ@ 1 -2 P)(CALL 3 (E SPCS))(JUMPE 1 G0034)(MOVEI 3 (QUOTE NIL))
	(HRRZ@ 2 -1 P)(HRRZ@ 1 -2 P)(CALL 3 (E SPCS))(JUMPN 1 G0033)
G0034 (TDZA 1 1)
G0033 (MOVEI 1 T)
G0002 (SUB P (C 0 0 3 3))(POPJ P)
NIL 


(DEFPROP CONSTLST (NIL T 0 1) VALUE) 
(LAP TST2 SUBR) 
	(MOVE 2 1)(MOVEI 1 (QUOTE TST3))(JCALL 2 (E MAPC))
NIL 


(LAP TST3#2 SUBR) 
	(PUSH P 1)(CALL 1 (E CADR))(HRRZ@ 2 (SPECIAL !X))(HLRZ@ 2 2)(CAME 2 1)(TDZA 1 1)(MOVEI 1 T)
	(JUMPN 1 G0001)(MOVEI 3 (QUOTE NIL))(HRRZ@ 2 0 P)(HLRZ@ 2 2)(HRRZ@ 1 (SPECIAL !X))
	(HLRZ@ 1 1)(CALL 3 (E SPCS))(JUMPE 1 G0005)(CALL 0 (E TERPRI))(MOVEI 1 (QUOTE 11))
	(CALL 1 (E TYO))(HRRZ@ 1 (SPECIAL !X))(HLRZ@ 1 1)(CALL 1 (E PRIN1))(MOVEI 1 (QUOTE 11))
	(CALL 1 (E TYO))(MOVE 1 0 P)(CALL 1 (E MKRITE))(CALL 1 (E PRIN1))
G0005 
G0001 (SUB P (C 0 0 1 1))(POPJ P)
NIL 


(LAP TST3#1 SUBR) 
	(JSP 6 SPECBIND)(0 1 (SPECIAL !X))(MOVE 2 (SPECIAL !BNF))(MOVEI 1 (QUOTE TST3#2))
	(CALL 2 (E MAPC))(JRST 0 SPECSTR)
NIL 


(LAP TST3 SUBR) 
	(JSP 6 SPECBIND)(0 0 (SPECIAL !BNF))(PUSH P 1)(CALL 1 (E PRINT))(MOVEI 2 (QUOTE BNF))
	(POP P 1)(CALL 2 (E GET))(MOVEM 1 (SPECIAL !BNF))(EXCH 2 1)(MOVEI 1 (QUOTE TST3#1))
	(CALL 2 (E MAPC))(MOVEI 1 (QUOTE NIL))(JRST 0 SPECSTR)
NIL 


(LAP OTA SUBR) 
	(PUSH P 1)(PUSH P (C 0 0 (QUOTE NIL)))
G0001 (MOVE 1 -1 P)(JUMPE 1 G0003)(HLRZ@ 1 -1 P)(MOVEM 1 0 P)(CALL 0 (E TERPRI))(CALL 0 (E TERPRI))
	(MOVE 1 0 P)(CALL 1 (E PRINT))(MOVEI 2 (QUOTE BNF))(MOVE 1 0 P)(CALL 2 (E GET))(CALL 1 (E OUTORDER))
	(MOVEI 2 (QUOTE BNF))(PUSH P 1)(MOVE 1 -1 P)(CALL 2 (E GET))(CALL 1 (E LENGTH))(CALL 1 (E OT1))
	(CALL 0 (E TERPRI))(POP P 1)(CALL 1 (E OT2))(MOVEI 1 (QUOTE NIL))(HRRZ@ 1 -1 P)(MOVEM 1 -1 P)
	(JRST 0 G0001)
G0003 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 2 2))(POPJ P)
NIL 


(LAP OT1 SUBR) 
	(PUSH P (C 0 0 (QUOTE 1)))(PUSH P 1)
G0001 (MOVE 2 0 P)(MOVE 1 -1 P)(CALL 2 (E *GREAT))(JUMPN 1 G0003)(MOVE 1 -1 P)(CALL 1 (E ORDNAM))
	(JUMPE 1 G0009)(MOVE 1 -1 P)(CALL 1 (E PRINT))(MOVE 1 -1 P)(CALL 1 (E ORDNUM))(PUSH P 1)
	(MOVE 1 -2 P)(CALL 1 (E ORDLST))(PUSH P 1)(MOVE 1 -3 P)(CALL 1 (E ORDNAM))(CALL 1 (E MKRITE))
	(CALL 1 (E NCONS))(POP P 2)(CALL 2 (E XCONS))(POP P 2)(CALL 2 (E XCONS))(CALL 1 (E PRIN1))
G0009 (MOVEI 2 (QUOTE 1))(MOVE 1 -1 P)(CALL 2 (E *PLUS))(MOVEM 1 -1 P)(JRST 0 G0001)
G0003 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 2 2))(POPJ P)
NIL 


(LAP OT2 SUBR) 
	(PUSH P 1)(PUSH P (C 0 0 (QUOTE NIL)))
G0001 (MOVE 1 -1 P)(JUMPE 1 G0003)(HLRZ@ 1 -1 P)(MOVEM 1 0 P)(CALL 1 (E MKRITE))(CALL 1 (E PRINT))
	(HRRZ@ 1 -1 P)(MOVEM 1 -1 P)(JRST 0 G0001)
G0003 (MOVEI 1 (QUOTE NIL))(SUB P (C 0 0 2 2))(POPJ P)
NIL 


(LAP MKMATCH SUBR) 
	(PUSH P 1)(CALL 1 (E ATOM))(JUMPE 1 G0002)(MOVE 2 (SPECIAL !BNF))(MOVE 1 0 P)(CALL 2 (E MEMQ))
	(JUMPE 1 G0002)(MOVEI 1 (QUOTE *))(JRST 0 G0001)
G0002 (MOVE 1 0 P)(CALL 1 (E ATOM))(JUMPE 1 G0006)(MOVE 1 0 P)(JRST 0 G0001)
G0006 (HLRZ@ 1 0 P)(CALL 1 (E MKMATCH))(PUSH P 1)(HRRZ@ 1 -1 P)(CALL 1 (E MKMATCH))(POP P 2)
	(CALL 2 (E XCONS))
G0008 
G0001 (SUB P (C 0 0 1 1))(POPJ P)
NIL 


(LAP MAGPRE SUBR) 
	(POPJ P)
NIL 


(DEFPROP STKLST (NIL (0 STK0) (1 STK1) (2 STK2) (3 STK3) (4 STK4) (5 STK5) (6 STK6) (7 STK7)) VALUE) 
(LAP MKBLD2 SUBR) 
	(PUSH P 1)(CALL 1 (E ATOM))(JUMPE 1 G0002)(MOVE 1 (SPECIAL !ASSLST))(JUMPN 1 G0002)
	(MOVEI 1 (QUOTE (STK1)))(JRST 0 G0001)
G0002 (MOVE 1 0 P)(CALL 1 (E ATOM))(JUMPE 1 G0005)(MOVE 2 (SPECIAL !ASSLST))(MOVE 1 0 P)(CALL 2 (E ASSOC))
	(MOVE 2 (SPECIAL STKLST))(HRRZ@ 1 1)(CALL 2 (E ASSOC))(HRRZ@ 1 1)(JRST 0 G0001)
G0005 (MOVEI 2 (QUOTE (CH QCH)))(HLRZ@ 1 0 P)(CALL 2 (E MEMQ))(JUMPE 1 G0011)(HRRZ@ 2 0 P)
	(MOVEI 1 (QUOTE :CH))(CALL 2 (E CONS))(CALL 1 (E NCONS))(MOVEI 2 (QUOTE QUOTE))(CALL 2 (E XCONS))
	(JRST 0 G0001)
G0011 (HRRZ@ 1 0 P)(HLRZ@ 1 1)(CALL 1 (E NCONS))(MOVEI 2 (QUOTE QUOTE))(CALL 2 (E XCONS))
G0018 
G0001 (SUB P (C 0 0 1 1))(POPJ P)
NIL 


(LAP MKBLD SUBR) 
	(PUSH P 1)(JUMPN 1 G0002)(MOVEI 1 (QUOTE FOOBAZ))(JRST 0 G0001)
G0002 (HRRZ@ 2 1)(JUMPN 2 G0003)(HLRZ@ 1 1)(CALL 1 (E MKBLD2))(JRST 0 G0001)
G0003 (MOVE 2 0 P)(MOVEI 1 (QUOTE MKBLD2))(CALL 2 (E MAPCAR))(MOVEI 2 (QUOTE LIST))(CALL 2 (E XCONS))
G0007 
G0001 (SUB P (C 0 0 1 1))(POPJ P)
NIL 


(LAP OUTMAK1 SUBR) 
	(JSP 6 SPECBIND)(0 1 (SPECIAL !BNF))(0 0 (SPECIAL !ASSLST))(PUSH P 2)(CAIE 2 (QUOTE *))
	(JRST 0 G0005)(CALL 1 (E GETATOM))(CALL 1 (E SQBROK))(PUSH P 1)(MOVEI 1 (QUOTE 1))
	(CALL 1 (E NCONS))(POP P 2)(CALL 2 (E XCONS))(JRST 0 G0004)
G0005 (EXCH 1 2)(CALL 1 (E ATOM))(JUMPE 1 G0010)(MOVE 1 0 P)(CALL 2 (E MEMQ))(JUMPE 1 G0010)
	(MOVE 1 0 P)(CALL 1 (E SQBROK))(PUSH P 1)(MOVEI 1 (QUOTE 1))(CALL 1 (E NCONS))(POP P 2)
	(CALL 2 (E XCONS))(JRST 0 G0004)
G0010 (MOVE 1 0 P)(CALL 1 (E ATOM))(JUMPE 1 G0017)(MOVE 1 0 P)(CALL 1 (E NCONS))(MOVEI 2 (QUOTE QUOTE))
	(CALL 2 (E XCONS))(PUSH P 1)(MOVEI 1 (QUOTE (STK1)))(CALL 1 (E NCONS))(POP P 2)(CALL 2 (E XCONS))
	(MOVEI 2 (QUOTE EQ))(CALL 2 (E XCONS))(JRST 0 G0004)
G0017 (MOVE 1 0 P)(CALL 1 (E MKMATCH))(CALL 1 (E NCONS))(MOVEI 2 (QUOTE QUOTE))(CALL 2 (E XCONS))
	(CALL 1 (E NCONS))(MOVEI 2 (QUOTE MATCH))(CALL 2 (E XCONS))(PUSH P 1)(MOVE 1 -1 P)
	(CALL 1 (E MKTST))(POP P 2)(CALL 2 (E XCONS))(MOVEI 2 (QUOTE AND))(CALL 2 (E XCONS))
G0024 
G0004 (PUSH P 1)(MOVE 1 (SPECIAL !BNF))(CALL 1 (E MKBLD))(CALL 1 (E NCONS))(POP P 2)(SUB P (C 0 0 1 1))
	(CALL 2 (E XCONS))(JRST 0 SPECSTR)
NIL 


(LAP MKTST2 SUBR) 
	(PUSH P 1)(JUMPE 1 G0002)(TDZA 1 1)
G0002 (MOVEI 1 T)(JUMPN 1 G0001)(MOVE 1 0 P)(CALL 1 (E ATOM))(JUMPE 1 G0004)(MOVE 2 (SPECIAL !BNF))
	(MOVE 1 0 P)(CALL 2 (E MEMQ))(JUMPE 1 G0004)(MOVE 1 0 P)(CALL 1 (E SQBROK))(PUSH P 1)
	(MOVE 1 (SPECIAL !STKLOC))(CALL 1 (E NCONS))(POP P 2)(CALL 2 (E XCONS))(MOVE 2 (SPECIAL !TSTLST))
	(CALL 2 (E CONS))(MOVEM 1 (SPECIAL !TSTLST))(MOVE 2 (SPECIAL !STKLOC))(MOVE 1 0 P)
	(CALL 2 (E CONS))(MOVE 2 (SPECIAL !ASSLST))(CALL 2 (E CONS))(MOVEM 1 (SPECIAL !ASSLST))
	(MOVE 1 (SPECIAL !STKLOC))(CALL 1 (E ADD1))(MOVEM 1 (SPECIAL !STKLOC))(JRST 0 G0001)
G0004 (MOVE 1 0 P)(CALL 1 (E ATOM))(JUMPN 1 G0001)(HRRZ@ 1 0 P)(CALL 1 (E MKTST2))(HLRZ@ 1 0 P)
	(CALL 1 (E MKTST2))
G0016 
G0001 (SUB P (C 0 0 1 1))(POPJ P)
NIL 


(LAP MKTST SUBR) 
	(JSP 6 SPECBIND)(0 0 (SPECIAL !TSTLST))(0 0 (SPECIAL !STKLOC))(MOVEI 2 (QUOTE 0))
	(MOVEM 2 (SPECIAL !STKLOC))(CALL 1 (E MKTST2))(MOVE 1 (SPECIAL !TSTLST))(JRST 0 SPECSTR)
NIL 


(LAP MAKOUTRULE SUBR) 
	(JSP 6 SPECBIND)(0 2 (SPECIAL !RULE))(CALL 1 (E CADR))(CALL 1 (E OUTORDER))(MOVE 2 1)
	(MOVEI 1 (QUOTE OUTMAKE))(CALL 2 (E MAPCAR))(CALL 1 (E MAGPRE))(MOVEI 2 (QUOTE COND))
	(CALL 2 (E XCONS))(CALL 1 (E NCONS))(MOVEI 2 (QUOTE NIL))(CALL 2 (E XCONS))(MOVEI 2 (QUOTE LAMBDA))
	(CALL 2 (E XCONS))(CALL 1 (E NCONS))(MOVEI 2 (QUOTE FUNCTION))(CALL 2 (E XCONS))(CALL 1 (E NCONS))
	(MOVEI 2 (QUOTE %N))(CALL 2 (E XCONS))(MOVEI 2 (QUOTE OUTRUL))(CALL 2 (E XCONS))(CALL 1 (E NCONS))
	(MOVEI 2 (QUOTE (%N)))(CALL 2 (E XCONS))(MOVEI 2 (QUOTE LAMBDA))(CALL 2 (E XCONS))
	(MOVEI 3 (QUOTE EXPR))(MOVE 2 1)(MOVE 1 (SPECIAL !RULE))(CALL 3 (E PUTPROP))(JRST 0 SPECSTR)
NIL 


(LAP OUTMAKE SUBR) 
	(HRRZ@ 2 1)(HLRZ@ 2 2)(HLRZ@ 1 1)(JCALL 2 (E OUTMAK1))
NIL 


(LAP MKOP SUBR) 
	(PUSH P 1)(PUSH P 2)(JUMPE 2 G0002)(TDZA 1 1)
G0002 (MOVEI 1 T)(JUMPN 1 G0001)(HRRZ@ 2 0 P)(JUMPN 2 G0004)(HLRZ@ 1 0 P)(JRST 0 G0001)
G0004 (MOVE 2 0 P)(MOVE 1 -1 P)(CALL 2 (E CONS))
G0007 
G0001 (SUB P (C 0 0 2 2))(POPJ P)
NIL